package io.a;//package io.a;
//
//import lombok.extern.slf4j.Slf4j;
//import org.bytedeco.javacv.FFmpegFrameGrabber;
//import org.bytedeco.javacv.FFmpegLogCallback;
//import org.bytedeco.javacv.Frame;
//import org.bytedeco.javacv.Java2DFrameConverter;
//
//import javax.imageio.ImageIO;
//import javax.imageio.stream.FileImageOutputStream;
//import java.awt.image.BufferedImage;
//import java.awt.image.DataBufferByte;
//import java.io.ByteArrayOutputStream;
//import java.io.File;
//
//@Slf4j
//public class Main {
//
//    String rtspUrl = "rtsp://10.10.40.209:8554/1";
//    int frameWidth = 1920;
//    int frameHeight = 1080;
//
//    int num = 1;
//
//    public void getPicture() {
//
//        FFmpegFrameGrabber grabber = null;
//        try {
//            grabber = FFmpegFrameGrabber.createDefault(rtspUrl);
//            log.info("创建grabber成功");
//            grabber.setOption("rtsp_transport", "tcp");
//            grabber.setImageWidth(frameWidth);
//            grabber.setImageHeight(frameHeight);
//            FFmpegLogCallback.set();
//            grabber.start();
//            log.info("grabber.start");
//            Java2DFrameConverter java2DFrameConverter = new Java2DFrameConverter();
//            while (true){
//                Frame frame = grabber.grabImage();
//                if (null == frame) {
//                    continue;
//                }
//                BufferedImage bufferedImage = java2DFrameConverter.getBufferedImage(frame);
//                byte[] bytes = imageToBytes(bufferedImage, "jpg");
//                byte2image(bytes);
//            }
//        } catch (FFmpegFrameGrabber.Exception e) {
//            e.printStackTrace();
//        } finally {
//            try {
//                grabber.stop();
//            } catch (FFmpegFrameGrabber.Exception e) {
//                e.printStackTrace();
//            }
//        }
//    }
//
//    private byte[] imageToBytes(BufferedImage bufferedImage, String jpg) {
////        ByteArrayOutputStream baos = new ByteArrayOutputStream();
////        ImageIO.write(image, "png", baos);
////        return baos.toByteArray();
//        DataBufferByte dataBuffer = (DataBufferByte) bufferedImage.getRaster().getDataBuffer();
//        return dataBuffer.getData();
//    }
//
//    /**
//     * byte数组到图片
//     *
//     * @param data
//     */
//    public void byte2image(byte[] data) {
//        if (data.length < 3) {
//            return;
//        }
//        try (FileImageOutputStream imageOutput = new FileImageOutputStream(new File("D:\\" + num + ".png"));){
//
//            imageOutput.write(data, 0, data.length);
//
//            log.info("图片保存成功" + num);
//            num++;
//        } catch (Exception ex) {
//            ex.printStackTrace();
//        }
//    }
//
//    public static void main(String[] args) {
//        Main main = new Main();
//        main.getPicture();
//    }
//}
